package com.itany;

import java.util.Optional;

/**
 * Author：汤小洋
 * Date：2022-10-26 15:26
 * Description：<描述>
 */
public class Test10_Optional {
    public static void main(String[] args) {
        /**
         * 创建Optional对象
         */
        Integer n1 = null;
        Integer n2 = 10;

        // of方法，如果参数为null，会抛空指针异常
        Optional<Integer> a = Optional.of(n2);
        // ofNullable方法，可以存储null
        Optional<Integer> b = Optional.ofNullable(n1);
        // empty方法，会创建一个保存null值的Optional对象
        Optional<Object> c = Optional.empty();

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println("--------------------------------------");


        /**
         * 常用方法
         */
        // isPresent 判断是否存在值
        System.out.println(a.isPresent());
        System.out.println(b.isPresent());

        // get 获取值，如果为null，会抛出异常
        Integer x = a.get();
        // orElse 获取值，如果为null，则返回指定的默认值
        Integer y = b.orElse(0);
        System.out.println(x);
        System.out.println(y);
    }
}
